package com.homegoods.orderinfodetail.item;

import android.view.View;

import com.homegoods.orderinfodetail.R;
import com.homegoods.orderinfodetail.model.SKUValueModel;
import com.kedll.library.adapter.MultiSelectAdapter;
import com.kedll.library.adapter.MultiTypeAdapter;
import com.kedll.library.mvp.BaseItem;
import com.kedll.library.util.ToastUtil;

public class SKUValueItem extends BaseItem<SKUValueModel> {
    private MultiTypeAdapter adapter;

    public SKUValueItem(SKUValueModel data, MultiTypeAdapter adapter) {
        super(data);
        this.adapter = adapter;
        setOnClickListener(v -> {
            SKUValueItem.this.getMultiSelectAdapter().toggle(data);
            SKUValueItem.this.setSelected(!data.isSelected());
            adapter.notifyItemRangeChanged(0, adapter.getItemCount());
            if (adapter.getOnItemClickListener() != null) {
                adapter.getOnItemClickListener().onItemClicked(v, SKUValueItem.this);
                ToastUtil.showToast(data.getName());
            }
        });
    }

    @Override
    public int getLayout() {
        return R.layout.info_item_sku_value;
    }

    private void setSelected(boolean selected) {
        for (MultiTypeAdapter.IItem item : getMultiSelectAdapter().getValues()) {
            ((SKUValueItem)item).getData().setSelected(false);
            getData().setSelected(false);
        }
        getData().setSelected(selected);
    }

    private MultiSelectAdapter<SKUValueModel> getMultiSelectAdapter() {
        return (MultiSelectAdapter<SKUValueModel>) adapter;
    }

    private String getSkuName() {
        return getData().getName();
    }

    private Boolean isSkuSelected() {
        return getData().isSelected();
    }
}
